Skip to main content

ALU

Implementați un ALU.

Intările ALU sunt:

  • i_w_op1 - primul operand (4 biți)
  • i_w_op2 - al doilea operand (4 biți)
  • i_w_opsel - operația selectată pentru a fi executată de către ALU (2 biți)

Ieșirea ALU este:

  • o_w_out - rezultatul operației între cei doi operanzi (4 biți)

Apăsați butonul "evaluate" din VPL pentru a afla operațile pe care trebuie sa le implementați pentru fiecare valoare a intrării i_w_opsel.

Operatiile posibile sunt:

  • ADDITION - Adunare între cei doi operanzi
  • SUBTRACTION - Scaderea celui de al doilea operand din primul operand
  • MULTIPLY - Înmulțirea celor doi operanzi și reținerea în rezultat a celor mai puți semnificativi 4 biți
  • DIVIDE - Împărțirea primului operand de către al doilea operand
  • MODULUS - Restul împărțirii primului operand de către al doilea operand
  • LEFT_SHIFT - Shiftarea la stânga a primului operand cu valoarea celui de al doilea operand
  • RIGHT_SHIFT - Shiftarea la dreapta a primului operand cu valoarea celui de al doilea operand
  • ARITHMETIC_RIGHT_SHIFT -Shiftarea aritmetică la dreapta a primului operand cu valoarea celui de al doilea operand
  • BITWISE_NAND - ȘI-NU între biți celor doi operanzi pe aceleași poziții
  • BITWISE_NOR - SAU_NU între biți celor doi operanzi pe aceleași poziții
  • BITWISE_AND - ȘI între biți celor doi operanzi pe aceleași poziții
  • BITWISE_OR - SAU între biți celor doi operanzi pe aceleași poziții
  • BITWISE_XOR - SAU-EXCLUSIV între biți celor doi operanzi pe aceleași poziții
  • COMPARE_EQUAL - Dacă cei doi operazi sunt egali rezultatul va avea valoarea 4'd1 astfel 4'd0.
  • COMPARE_LESS_THAN - Dacă primul operand este mai mic ca al doilea operand rezultatul va avea valoarea 4'd1 astfel 4'd0.
  • COMPARE_GREATER_THAN - Dacă primul operand este mai mare ca al doilea operand rezultatul va avea valoarea 4'd1 astfel 4'd0.